請先理解:電腦不懂你想幹嘛,電腦程式不懂你想幹嘛,按鈕上寫著「按下我可以OOXXOOXX」並不表示程式與電腦知道「OOXXOOXX」的意思,那只是工程師放在按鈕上的一行字而已。
哪怕「OOXXOOXX」是簡單的「請讓喇叭發出一聲Beeeee的噪音一秒鐘」,電腦與電腦程式一樣不懂。
電腦與電腦程式懂的是....
「開啟Port MM」「產生額外的執行序」「給額外的執行緒設定編號MM1」「產生資料串MM2(Beeee的資料格式)」「要求執行MM1跟Port MM進行傳輸請求」「要求執行緒從Port MM收到許可後開始連續向Port MM發送MM2、持續一秒鐘」「一秒鐘後,停止傳送,向Port MM發送關閉通知」「結束功能,結束執行緒MM」「回收記憶體」。
如何構思並設計出這一連串過程,就是程式設計。
聽起來很複雜?
你還沒動手做呢!
這些動作過程可都不能用中文寫,電腦與電腦程式並不懂中文(或任何人類使用的語言)。
「開啟Port MM」轉換成程式碼(或者說是「機械碼」),複雜程度有時候並不輸給上面的範例中所使用的一連串過程。
唯一奇妙的事情,或說幸運的是:讓喇叭發出一聲Beeee、往硬碟輸入資料、往螢幕顯示圖片....其實過程邏輯是極為相似的。(開啟不同的Port、送入不同結構的資料...就是這樣的程序重複而已。)
因為理想的、或說我也認同的程式語言應該是要用最少量的動作指令然後設計出各種複雜的任務讓電腦執行。
但好笑的是,這樣的程式語言(機械碼的邏輯)我學不會、寫不來、設計不好,所以我只好乖乖地抱起高階程式語言,忍受那些數不完的動作指令了。
漏了個很重要的東西。
如果大家的過程邏輯都很相似,那到底真正關鍵不同點在哪裡才有辦法讓電腦可以執行這麼多工作?又為什麼會有高階語言?什麼時候要開始講程式怎麼寫?
下篇吧!